﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ADIGRE.Domain;
using FluentNHibernate.Mapping;

namespace ADIGRE.Infrastructure.NHibernateMaps
{
    class EntradaMap : SubclassMap<Entrada>
    {
        EntradaMap()
        {
            References(x => x.Receita);
            Subclass<Dizimo>(m =>
            {
                m.Map(x => x.Id);
                m.Map(x => x.DtReferencia);
                m.References(x => x.Dizimista);
                m.DiscriminatorValue(EnumLancamento.Dizimo);
            });
            Subclass<Oferta>(m =>
            {
                m.Map(x => x.Id);
                m.DiscriminatorValue(EnumLancamento.Oferta);
            });
            Subclass<OfertaEspecial>(m =>
            {
                m.Map(x => x.Id);
                m.Map(x => x.DtReferencia);
                m.Map(x => x.Parcela);
                m.References(x => x.Pessoa);
                m.DiscriminatorValue(EnumLancamento.OfertaEspecial);
            });
            Subclass<OutrasEntradas>(m =>
            {
                m.Map(x => x.Id);
                m.DiscriminatorValue(EnumLancamento.OutrasEntradas);
            });
        }
    }
}
